home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / comm / mail / YamNet.lha / rexxtra12.lha / rexx / Join.rexx < prev    next >
OS/2 REXX Batch file  |  1990-03-18  |  1KB  |  63 lines

  1. /* join.rexx */
  2.  
  3. /*
  4.      Format
  5.  
  6.        JOIN [FILES] <file1> <file2> [...<fileN>] AS <fileAS>
  7.  
  8.    a 'front end' for join. Fixes a problem with join.
  9.  
  10. */
  11.  
  12. signal on failure; signal off error; signal on syntax; signal on break_c
  13. options failat 10
  14. call addlib 'rexxextra.library',-20,-30,0
  15.  
  16. facility = 'Join'
  17. dtemplate = 'FILES/...,AS=TO/A'
  18. template = 'AS=TO/R,FILES/L'
  19. args. = ''
  20.  
  21. parse arg g_c
  22. do while g_c='?'
  23.   options prompt dtemplate': '  /* this template is      */
  24.   parse pull g_c        /* displayed to the user */
  25.   if g_c='?' then do
  26.     g_s=sourceline(3)
  27.     if pos('/*',g_s)=0 then break; if pos('*/',g_s)>0 then break
  28.     say
  29.     g_s=sourceline(4)
  30.     do i=5 while pos('*/',g_s)=0; say g_s; g_s=sourceline(i); end
  31.     say
  32.     end
  33.   end
  34. interpret Cparse(g_c,template,'args')
  35. if args.ERRCODE > 1 then do; say facility'-E-BADARGS,' args.ERRTEXT; exit 5; end
  36.  
  37. program = 'c:Join'
  38. temp = 't:JOIN.' || Pragma('ID')
  39.  
  40. c = ''
  41. do i = 1 to args.FILES.0
  42.   c = c||' '||args.FILES.i
  43.   end
  44. ''program || c 'AS' temp
  45. retcode = rc
  46. 'Move' temp args.AS
  47. retcode = max(rc,retcode)
  48. GetOut:
  49. exit retcode
  50.  
  51. break_c:
  52. break_d:
  53. break_e:
  54. break_f:
  55.   say facility'-E-BREAK, Control-C interrupt'; retcode = 20; signal GetOut
  56. failure:
  57.   say facility'-E-FAIL, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
  58. syntax:
  59.   say facility'-E-SYNTAX, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
  60. error:
  61.   say facility'-E-ERROR, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
  62.  
  63.